﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using XF.Meeting.Entity.dbEntity;
using XF.Meeting.Entity.DTO;
using XF.Meeting.Entity.Query;

namespace XF.Meeting.IDal
{
    public interface ISettingDal
    {
        //获取系统名称
        Task<DataTable> GetSystemName(out string strError);

        //获取ad设置
        Task<DataTable> GetADsetting(out string strError);

        // 获取系统设置信息
        Task<DataTable> GetSettingSystem(out string strError);

        //获取系统预约显示时段
        Task<DataTable> GetSubscribe(out string strError);

        // 修改系统设置信息
        Task<bool> UpdateSettingSystem(SettingSystem entity, out string strError);

        // 获取第三方设置信息
        Task<DataTable> GetSettingThirdParty(out string strError);

        // 修改第三方设置信息
        Task<bool> UpdateSettingThirdParty(SettingThirdParty entity, out string strError);

        // 获取使用许可设置信息
        Task<DataTable> GetSettingUseLicense(out string strError);

        // 修改使用许可设置信息
        Task<bool> UpdateSettingUseLicense(SettingUseLicense entity, out string strError);

        Task<bool> AddRegional(RegionalInfo entity, out string strError);

        Task<bool> DeleteRegional(RegionalInfo entity, out string strError);

        Task<bool> UpdateRegional(RegionalInfo entity, out string strError);

        Task<Tuple<DataTable, int, int, bool>> GetRegional(RegionalQuery query, out string strError);

        Task<DataTable> GetRegionalOne(out string strError);
        Task<DataTable> GetRegionalOneForAdmin(RegionalInfo query, out string strError);

        Task<DataTable> GetRegionalByPID(RegionalQuery query, out string strError);

        Task<DataTable> GetRegionalForPad(out string strError);
        Task<DataTable> GetRegionalByPathForPad(RegionalInfo query, out string strError);

        Task<MeetingTimeLimit> GetMeetingTimeLimit(out string strError);
        Task<DataTable> GetCRoomNameByRid(RoomQuery query, out string strError);
        Task<Tuple<DataTable, int, int, bool>> GetRegionalForMobile(RegionalQuery query, out string strError);
        Task<DataTable> getMeetIdBystrBOID(string guid,out string strError);
        Task<DataTable> GetOrganizationTree(out string strError);
        Task<DataTable> GetUserOrgForOrgcalendarsAuth(UserInfo user, out string strError);
        Task<DataTable> GetOrganizationTreeForCalendars(out string strError);
        Task<DataTable> GetRegional_Organization(Regional_Organization entity, out string strError);

        
        Task<DataTable> GetOrganizationOne(out string strError);
        Task<DataTable> GetOrganizationByPID(OrganizationQuery query, out string strError);
        Task<DataTable> GetOrganizationAll(out string strError);
    }
}
